package com.system.travel.modules.system.service;

import com.system.travel.common.base.BaseService;
import com.system.travel.modules.system.entity.SysPermission;

import java.util.List;

/**
 * 系统权限Service接口
 *
 * @author lucas
 * @date 2024/01/01
 */
public interface SysPermissionService extends BaseService<SysPermission> {

    /**
     * 通过角色ID查询权限列表
     */
    List<SysPermission> getPermissionsByRoleId(Long roleId);

    /**
     * 查询用户的所有权限
     */
    List<SysPermission> getPermissionsByUserId(Long userId);

    /**
     * 查询菜单列表
     */
    List<SysPermission> getMenuList();

    /**
     * 更新权限状态
     */
    void updateStatus(Long permissionId, Integer status);

    /**
     * 更新权限可见性
     */
    void updateVisible(Long permissionId, Integer visible);

    /**
     * 构建权限树
     */
    List<SysPermission> buildPermissionTree(List<SysPermission> permissions);
} 